// ========================================================================= //

// includes
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#include "string.h"
#include "limits.h"
#include "float.h"



#define JOTAI_NUM_RANDS_ 25

const unsigned rand_primes[JOTAI_NUM_RANDS_] = {179, 103, 479, 647, 229, 37, 271, 557, 263, 607, 18743, 50359, 21929, 48757, 98179, 12907, 52937, 64579, 49957, 52567, 507163, 149939, 412157, 680861, 757751};

int next_i() {
  int counter = 0;
  return rand_primes[(++counter)%JOTAI_NUM_RANDS_];
}

float next_f() {
  int counter = 0;
  return rand_primes[(++counter)%JOTAI_NUM_RANDS_] / 757751.0F;
} 


// Usage menu
void usage() {
    printf("%s", "Usage:\n\
    prog [ARGS]\n\
\nARGS:\n\
       0            int-bounds\n\
       1            big-arr\n\
       2            big-arr-10x\n\
       3            empty\n\
\n\
");

}


// ------------------------------------------------------------------------- //

#define NULL ((void*)0)
typedef unsigned long size_t;  // Customize by platform.
typedef long intptr_t; typedef unsigned long uintptr_t;
typedef long scalar_t__;  // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
struct device {int dummy; } ;

/* Variables and functions */
#define  RT5665_4BTN_IL_CMD_1 517 
#define  RT5665_4BTN_IL_CMD_2 516 
#define  RT5665_4BTN_IL_CMD_3 515 
#define  RT5665_ADC_L_EQ_LPF1_A1 514 
#define  RT5665_ADC_MONO_HP_CTRL_1 513 
#define  RT5665_ADC_MONO_HP_CTRL_2 512 
#define  RT5665_ADC_STO1_HP_CTRL_1 511 
#define  RT5665_ADC_STO1_HP_CTRL_2 510 
#define  RT5665_ADC_STO2_HP_CTRL_1 509 
#define  RT5665_ADC_STO2_HP_CTRL_2 508 
#define  RT5665_ADDA_CLK_1 507 
#define  RT5665_ADDA_CLK_2 506 
#define  RT5665_AD_DA_MIXER 505 
#define  RT5665_AJD1_CTRL 504 
#define  RT5665_ALC_BACK_GAIN 503 
#define  RT5665_ALC_PGA_CTRL_1 502 
#define  RT5665_ALC_PGA_CTRL_2 501 
#define  RT5665_ALC_PGA_CTRL_3 500 
#define  RT5665_ALC_PGA_CTRL_4 499 
#define  RT5665_ALC_PGA_CTRL_5 498 
#define  RT5665_ALC_PGA_CTRL_6 497 
#define  RT5665_ALC_PGA_CTRL_7 496 
#define  RT5665_ALC_PGA_CTRL_8 495 
#define  RT5665_ALC_PGA_STA_1 494 
#define  RT5665_ALC_PGA_STA_2 493 
#define  RT5665_ALC_PGA_STA_3 492 
#define  RT5665_ASRC_1 491 
#define  RT5665_ASRC_10 490 
#define  RT5665_ASRC_12 489 
#define  RT5665_ASRC_13 488 
#define  RT5665_ASRC_14 487 
#define  RT5665_ASRC_2 486 
#define  RT5665_ASRC_3 485 
#define  RT5665_ASRC_4 484 
#define  RT5665_ASRC_5 483 
#define  RT5665_ASRC_6 482 
#define  RT5665_ASRC_7 481 
#define  RT5665_ASRC_8 480 
#define  RT5665_ASRC_9 479 
#define  RT5665_A_DAC1_MUX 478 
#define  RT5665_A_DAC2_MUX 477 
#define  RT5665_BASSBACK_CTRL 476 
#define  RT5665_BIAS_CUR_CTRL_1 475 
#define  RT5665_BIAS_CUR_CTRL_10 474 
#define  RT5665_BIAS_CUR_CTRL_2 473 
#define  RT5665_BIAS_CUR_CTRL_3 472 
#define  RT5665_BIAS_CUR_CTRL_4 471 
#define  RT5665_BIAS_CUR_CTRL_5 470 
#define  RT5665_BIAS_CUR_CTRL_6 469 
#define  RT5665_BIAS_CUR_CTRL_7 468 
#define  RT5665_BIAS_CUR_CTRL_8 467 
#define  RT5665_BIAS_CUR_CTRL_9 466 
#define  RT5665_CALIB_ADC_CTRL 465 
#define  RT5665_CAL_BST_CTRL 464 
#define  RT5665_CAL_REC 463 
#define  RT5665_CBJ_BST_CTRL 462 
#define  RT5665_CHARGE_PUMP_1 461 
#define  RT5665_CHOP_ADC 460 
#define  RT5665_CHOP_DAC 459 
#define  RT5665_CLK_DET 458 
#define  RT5665_DAC1_DIG_VOL 457 
#define  RT5665_DAC2_CTRL 456 
#define  RT5665_DAC2_DIG_VOL 455 
#define  RT5665_DAC3_CTRL 454 
#define  RT5665_DAC3_DIG_VOL 453 
#define  RT5665_DAC_ADC_DIG_VOL1 452 
#define  RT5665_DAC_ADC_DIG_VOL2 451 
#define  RT5665_DEPOP_1 450 
#define  RT5665_DEPOP_2 449 
#define  RT5665_DEVICE_ID 448 
#define  RT5665_DIG_INF2_DATA 447 
#define  RT5665_DIG_INF3_DATA 446 
#define  RT5665_DIG_IN_CTRL_1 445 
#define  RT5665_DIG_IN_CTRL_2 444 
#define  RT5665_DIG_MISC 443 
#define  RT5665_DMIC_CTRL_1 442 
#define  RT5665_DMIC_CTRL_2 441 
#define  RT5665_DRC1_CTRL_0 440 
#define  RT5665_DRC1_CTRL_1 439 
#define  RT5665_DRC1_CTRL_2 438 
#define  RT5665_DRC1_CTRL_3 437 
#define  RT5665_DRC1_CTRL_4 436 
#define  RT5665_DRC1_CTRL_5 435 
#define  RT5665_DRC1_CTRL_6 434 
#define  RT5665_DRC1_HARD_LMT_CTRL_1 433 
#define  RT5665_DRC1_HARD_LMT_CTRL_2 432 
#define  RT5665_DRC1_PRIV_1 431 
#define  RT5665_DRC1_PRIV_2 430 
#define  RT5665_DRC1_PRIV_3 429 
#define  RT5665_DRC1_PRIV_4 428 
#define  RT5665_DRC1_PRIV_5 427 
#define  RT5665_DRC1_PRIV_6 426 
#define  RT5665_DRC1_PRIV_7 425 
#define  RT5665_DRC1_PRIV_8 424 
#define  RT5665_DUMMY_2 423 
#define  RT5665_DUMMY_3 422 
#define  RT5665_EJD_CTRL_1 421 
#define  RT5665_EJD_CTRL_2 420 
#define  RT5665_EJD_CTRL_3 419 
#define  RT5665_EJD_CTRL_4 418 
#define  RT5665_EJD_CTRL_5 417 
#define  RT5665_EJD_CTRL_6 416 
#define  RT5665_EJD_CTRL_7 415 
#define  RT5665_EQ_AUTO_RCV_CTRL1 414 
#define  RT5665_EQ_AUTO_RCV_CTRL10 413 
#define  RT5665_EQ_AUTO_RCV_CTRL11 412 
#define  RT5665_EQ_AUTO_RCV_CTRL12 411 
#define  RT5665_EQ_AUTO_RCV_CTRL13 410 
#define  RT5665_EQ_AUTO_RCV_CTRL2 409 
#define  RT5665_EQ_AUTO_RCV_CTRL3 408 
#define  RT5665_EQ_AUTO_RCV_CTRL4 407 
#define  RT5665_EQ_AUTO_RCV_CTRL5 406 
#define  RT5665_EQ_AUTO_RCV_CTRL6 405 
#define  RT5665_EQ_AUTO_RCV_CTRL7 404 
#define  RT5665_EQ_AUTO_RCV_CTRL8 403 
#define  RT5665_EQ_AUTO_RCV_CTRL9 402 
#define  RT5665_EQ_CTRL_1 401 
#define  RT5665_EQ_CTRL_2 400 
#define  RT5665_GLB_CLK 399 
#define  RT5665_GPIO_CTRL_1 398 
#define  RT5665_GPIO_CTRL_2 397 
#define  RT5665_GPIO_CTRL_3 396 
#define  RT5665_GPIO_CTRL_4 395 
#define  RT5665_GPIO_STA 394 
#define  RT5665_HPF_CTRL1 393 
#define  RT5665_HPL_GAIN 392 
#define  RT5665_HPR_GAIN 391 
#define  RT5665_HP_AMP_DET_CTRL_1 390 
#define  RT5665_HP_AMP_DET_CTRL_2 389 
#define  RT5665_HP_CALIB_CTRL_1 388 
#define  RT5665_HP_CALIB_CTRL_10 387 
#define  RT5665_HP_CALIB_CTRL_11 386 
#define  RT5665_HP_CALIB_CTRL_2 385 
#define  RT5665_HP_CALIB_CTRL_3 384 
#define  RT5665_HP_CALIB_CTRL_4 383 
#define  RT5665_HP_CALIB_CTRL_5 382 
#define  RT5665_HP_CALIB_CTRL_6 381 
#define  RT5665_HP_CALIB_CTRL_7 380 
#define  RT5665_HP_CALIB_CTRL_9 379 
#define  RT5665_HP_CALIB_STA_1 378 
#define  RT5665_HP_CALIB_STA_10 377 
#define  RT5665_HP_CALIB_STA_11 376 
#define  RT5665_HP_CALIB_STA_2 375 
#define  RT5665_HP_CALIB_STA_3 374 
#define  RT5665_HP_CALIB_STA_4 373 
#define  RT5665_HP_CALIB_STA_5 372 
#define  RT5665_HP_CALIB_STA_6 371 
#define  RT5665_HP_CALIB_STA_7 370 
#define  RT5665_HP_CALIB_STA_8 369 
#define  RT5665_HP_CALIB_STA_9 368 
#define  RT5665_HP_CHARGE_PUMP_1 367 
#define  RT5665_HP_CHARGE_PUMP_2 366 
#define  RT5665_HP_CTRL_1 365 
#define  RT5665_HP_CTRL_2 364 
#define  RT5665_HP_IMP_GAIN_1 363 
#define  RT5665_HP_IMP_GAIN_2 362 
#define  RT5665_HP_IMP_SENS_CTRL_01 361 
#define  RT5665_HP_IMP_SENS_CTRL_02 360 
#define  RT5665_HP_IMP_SENS_CTRL_03 359 
#define  RT5665_HP_IMP_SENS_CTRL_04 358 
#define  RT5665_HP_IMP_SENS_CTRL_05 357 
#define  RT5665_HP_IMP_SENS_CTRL_06 356 
#define  RT5665_HP_IMP_SENS_CTRL_07 355 
#define  RT5665_HP_IMP_SENS_CTRL_08 354 
#define  RT5665_HP_IMP_SENS_CTRL_09 353 
#define  RT5665_HP_IMP_SENS_CTRL_10 352 
#define  RT5665_HP_IMP_SENS_CTRL_11 351 
#define  RT5665_HP_IMP_SENS_CTRL_12 350 
#define  RT5665_HP_IMP_SENS_CTRL_13 349 
#define  RT5665_HP_IMP_SENS_CTRL_14 348 
#define  RT5665_HP_IMP_SENS_CTRL_15 347 
#define  RT5665_HP_IMP_SENS_CTRL_16 346 
#define  RT5665_HP_IMP_SENS_CTRL_17 345 
#define  RT5665_HP_IMP_SENS_CTRL_18 344 
#define  RT5665_HP_IMP_SENS_CTRL_19 343 
#define  RT5665_HP_IMP_SENS_CTRL_20 342 
#define  RT5665_HP_IMP_SENS_CTRL_21 341 
#define  RT5665_HP_IMP_SENS_CTRL_22 340 
#define  RT5665_HP_IMP_SENS_CTRL_23 339 
#define  RT5665_HP_IMP_SENS_CTRL_24 338 
#define  RT5665_HP_IMP_SENS_CTRL_25 337 
#define  RT5665_HP_IMP_SENS_CTRL_26 336 
#define  RT5665_HP_IMP_SENS_CTRL_27 335 
#define  RT5665_HP_IMP_SENS_CTRL_28 334 
#define  RT5665_HP_IMP_SENS_CTRL_29 333 
#define  RT5665_HP_IMP_SENS_CTRL_30 332 
#define  RT5665_HP_IMP_SENS_CTRL_31 331 
#define  RT5665_HP_IMP_SENS_CTRL_32 330 
#define  RT5665_HP_IMP_SENS_CTRL_33 329 
#define  RT5665_HP_IMP_SENS_CTRL_34 328 
#define  RT5665_HP_LOGIC_CTRL_1 327 
#define  RT5665_HP_LOGIC_CTRL_2 326 
#define  RT5665_HP_LOGIC_CTRL_3 325 
#define  RT5665_I2C_MODE 324 
#define  RT5665_I2S1_F_DIV_CTRL_1 323 
#define  RT5665_I2S1_F_DIV_CTRL_2 322 
#define  RT5665_I2S1_SDP 321 
#define  RT5665_I2S2_F_DIV_CTRL_1 320 
#define  RT5665_I2S2_F_DIV_CTRL_2 319 
#define  RT5665_I2S2_SDP 318 
#define  RT5665_I2S3_F_DIV_CTRL_1 317 
#define  RT5665_I2S3_F_DIV_CTRL_2 316 
#define  RT5665_I2S3_SDP 315 
#define  RT5665_I2S_M_CLK_CTRL_1 314 
#define  RT5665_IL_CMD_1 313 
#define  RT5665_IL_CMD_2 312 
#define  RT5665_IL_CMD_3 311 
#define  RT5665_IL_CMD_4 310 
#define  RT5665_IN1_IN2 309 
#define  RT5665_IN3_IN4 308 
#define  RT5665_INL1_INR1_VOL 307 
#define  RT5665_INT_ST_1 306 
#define  RT5665_IRQ_CTRL_1 305 
#define  RT5665_IRQ_CTRL_2 304 
#define  RT5665_IRQ_CTRL_3 303 
#define  RT5665_IRQ_CTRL_4 302 
#define  RT5665_IRQ_CTRL_5 301 
#define  RT5665_IRQ_CTRL_6 300 
#define  RT5665_JD1_THD 299 
#define  RT5665_JD2_THD 298 
#define  RT5665_JD_CTRL_1 297 
#define  RT5665_JD_CTRL_2 296 
#define  RT5665_JD_CTRL_3 295 
#define  RT5665_LOUT 294 
#define  RT5665_LOUT_MIXER 293 
#define  RT5665_LOW_HP_AMP_DET 292 
#define  RT5665_L_EQ_BPF1_A1 291 
#define  RT5665_L_EQ_BPF1_A2 290 
#define  RT5665_L_EQ_BPF1_H0 289 
#define  RT5665_L_EQ_BPF2_A1 288 
#define  RT5665_L_EQ_BPF2_A2 287 
#define  RT5665_L_EQ_BPF2_H0 286 
#define  RT5665_L_EQ_BPF3_A1 285 
#define  RT5665_L_EQ_BPF3_A2 284 
#define  RT5665_L_EQ_BPF3_H0 283 
#define  RT5665_L_EQ_BPF4_A1 282 
#define  RT5665_L_EQ_BPF4_A2 281 
#define  RT5665_L_EQ_BPF4_H0 280 
#define  RT5665_L_EQ_HPF1_A1 279 
#define  RT5665_L_EQ_HPF1_H0 278 
#define  RT5665_L_EQ_LPF1_H0 277 
#define  RT5665_L_EQ_POST_VOL 276 
#define  RT5665_L_EQ_PRE_VOL 275 
#define  RT5665_MICBIAS_1 274 
#define  RT5665_MICBIAS_2 273 
#define  RT5665_MID_HP_AMP_DET 272 
#define  RT5665_MONOL_DAC_SIL_DET 271 
#define  RT5665_MONOMIX_GAIN 270 
#define  RT5665_MONOMIX_IN_GAIN 269 
#define  RT5665_MONOR_DAC_SIL_DET 268 
#define  RT5665_MONO_ADC_BOOST 267 
#define  RT5665_MONO_ADC_DIG_VOL 266 
#define  RT5665_MONO_ADC_MIXER 265 
#define  RT5665_MONO_AMP_CALIB_CTRL_1 264 
#define  RT5665_MONO_AMP_CALIB_CTRL_2 263 
#define  RT5665_MONO_AMP_CALIB_CTRL_3 262 
#define  RT5665_MONO_AMP_CALIB_CTRL_4 261 
#define  RT5665_MONO_AMP_CALIB_CTRL_5 260 
#define  RT5665_MONO_AMP_CALIB_CTRL_6 259 
#define  RT5665_MONO_AMP_CALIB_CTRL_7 258 
#define  RT5665_MONO_AMP_CALIB_STA1 257 
#define  RT5665_MONO_AMP_CALIB_STA2 256 
#define  RT5665_MONO_AMP_CALIB_STA3 255 
#define  RT5665_MONO_AMP_CALIB_STA4 254 
#define  RT5665_MONO_AMP_CALIB_STA6 253 
#define  RT5665_MONO_DAC_MIXER 252 
#define  RT5665_MONO_GAIN 251 
#define  RT5665_MONO_NG2_CTRL_1 250 
#define  RT5665_MONO_NG2_CTRL_2 249 
#define  RT5665_MONO_NG2_CTRL_3 248 
#define  RT5665_MONO_NG2_CTRL_4 247 
#define  RT5665_MONO_NG2_CTRL_5 246 
#define  RT5665_MONO_NG2_CTRL_6 245 
#define  RT5665_MONO_OUT 244 
#define  RT5665_OUT_L_GAIN 243 
#define  RT5665_OUT_L_MIXER 242 
#define  RT5665_OUT_R_GAIN 241 
#define  RT5665_OUT_R_MIXER 240 
#define  RT5665_PAD_DRIVING_CTRL 239 
#define  RT5665_PDM_DATA_CTRL_1 238 
#define  RT5665_PDM_DATA_CTRL_2 237 
#define  RT5665_PDM_DATA_CTRL_3 236 
#define  RT5665_PDM_DATA_CTRL_4 235 
#define  RT5665_PDM_OUT_CTRL 234 
#define  RT5665_PGM_TAB_CTRL1 233 
#define  RT5665_PGM_TAB_CTRL2 232 
#define  RT5665_PGM_TAB_CTRL3 231 
#define  RT5665_PGM_TAB_CTRL4 230 
#define  RT5665_PGM_TAB_CTRL5 229 
#define  RT5665_PGM_TAB_CTRL6 228 
#define  RT5665_PGM_TAB_CTRL7 227 
#define  RT5665_PGM_TAB_CTRL8 226 
#define  RT5665_PGM_TAB_CTRL9 225 
#define  RT5665_PLL 224 
#define  RT5665_PLL_CTRL_1 223 
#define  RT5665_PLL_CTRL_2 222 
#define  RT5665_PSV_IL_CMD_1 221 
#define  RT5665_PWR_ANLG_1 220 
#define  RT5665_PWR_ANLG_2 219 
#define  RT5665_PWR_ANLG_3 218 
#define  RT5665_PWR_DIG_1 217 
#define  RT5665_PWR_DIG_2 216 
#define  RT5665_PWR_MIXER 215 
#define  RT5665_PWR_VOL 214 
#define  RT5665_RC_CLK_CTRL 213 
#define  RT5665_REC1_GAIN 212 
#define  RT5665_REC1_L1_MIXER 211 
#define  RT5665_REC1_L2_MIXER 210 
#define  RT5665_REC1_R1_MIXER 209 
#define  RT5665_REC1_R2_MIXER 208 
#define  RT5665_REC2_GAIN 207 
#define  RT5665_REC2_L1_MIXER 206 
#define  RT5665_REC2_L2_MIXER 205 
#define  RT5665_REC2_R1_MIXER 204 
#define  RT5665_REC2_R2_MIXER 203 
#define  RT5665_RESET 202 
#define  RT5665_R_EQ_BPF1_A1 201 
#define  RT5665_R_EQ_BPF1_A2 200 
#define  RT5665_R_EQ_BPF1_H0 199 
#define  RT5665_R_EQ_BPF2_A1 198 
#define  RT5665_R_EQ_BPF2_A2 197 
#define  RT5665_R_EQ_BPF2_H0 196 
#define  RT5665_R_EQ_BPF3_A1 195 
#define  RT5665_R_EQ_BPF3_A2 194 
#define  RT5665_R_EQ_BPF3_H0 193 
#define  RT5665_R_EQ_BPF4_A1 192 
#define  RT5665_R_EQ_BPF4_A2 191 
#define  RT5665_R_EQ_BPF4_H0 190 
#define  RT5665_R_EQ_HPF1_A1 189 
#define  RT5665_R_EQ_HPF1_H0 188 
#define  RT5665_R_EQ_LPF1_A1 187 
#define  RT5665_R_EQ_LPF1_H0 186 
#define  RT5665_R_EQ_POST_VOL 185 
#define  RT5665_R_EQ_PRE_VOL 184 
#define  RT5665_SAR_IL_CMD_1 183 
#define  RT5665_SAR_IL_CMD_10 182 
#define  RT5665_SAR_IL_CMD_11 181 
#define  RT5665_SAR_IL_CMD_12 180 
#define  RT5665_SAR_IL_CMD_2 179 
#define  RT5665_SAR_IL_CMD_3 178 
#define  RT5665_SAR_IL_CMD_4 177 
#define  RT5665_SAR_IL_CMD_5 176 
#define  RT5665_SAR_IL_CMD_6 175 
#define  RT5665_SAR_IL_CMD_7 174 
#define  RT5665_SAR_IL_CMD_8 173 
#define  RT5665_SAR_IL_CMD_9 172 
#define  RT5665_SCAN_MODE_CTRL 171 
#define  RT5665_SIL_PSV_CTRL1 170 
#define  RT5665_SIL_PSV_CTRL2 169 
#define  RT5665_SIL_PSV_CTRL3 168 
#define  RT5665_SIL_PSV_CTRL4 167 
#define  RT5665_SIL_PSV_CTRL5 166 
#define  RT5665_SIL_PSV_CTRL6 165 
#define  RT5665_SOFT_RAMP_DEPOP 164 
#define  RT5665_STO1_ADC_BOOST 163 
#define  RT5665_STO1_ADC_DIG_VOL 162 
#define  RT5665_STO1_ADC_MIXER 161 
#define  RT5665_STO1_DAC_MIXER 160 
#define  RT5665_STO1_DAC_SIL_DET 159 
#define  RT5665_STO2_ADC_BOOST 158 
#define  RT5665_STO2_ADC_DIG_VOL 157 
#define  RT5665_STO2_ADC_MIXER 156 
#define  RT5665_STO2_DAC_MIXER 155 
#define  RT5665_STO2_DAC_SIL_DET 154 
#define  RT5665_STO_NG2_CTRL_1 153 
#define  RT5665_STO_NG2_CTRL_2 152 
#define  RT5665_STO_NG2_CTRL_3 151 
#define  RT5665_STO_NG2_CTRL_4 150 
#define  RT5665_STO_NG2_CTRL_5 149 
#define  RT5665_STO_NG2_CTRL_6 148 
#define  RT5665_STO_NG2_CTRL_7 147 
#define  RT5665_STO_NG2_CTRL_8 146 
#define  RT5665_SV_ZCD_1 145 
#define  RT5665_SV_ZCD_2 144 
#define  RT5665_TDM_CTRL_1 143 
#define  RT5665_TDM_CTRL_2 142 
#define  RT5665_TDM_CTRL_3 141 
#define  RT5665_TDM_CTRL_4 140 
#define  RT5665_TDM_CTRL_5 139 
#define  RT5665_TDM_CTRL_6 138 
#define  RT5665_TDM_CTRL_7 137 
#define  RT5665_TDM_CTRL_8 136 
#define  RT5665_TEST_MODE_CTRL_1 135 
#define  RT5665_TEST_MODE_CTRL_2 134 
#define  RT5665_TEST_MODE_CTRL_3 133 
#define  RT5665_TEST_MODE_CTRL_4 132 
#define  RT5665_VENDOR_ID 131 
#define  RT5665_VENDOR_ID_1 130 
#define  RT5665_VOL_TEST 129 
#define  RT5665_VREF_REC_OP_FB_CAP_CTRL 128 

__attribute__((used)) static bool rt5665_readable_register(struct device *dev, unsigned int reg)
{
	switch (reg) {
	case RT5665_RESET:
	case RT5665_VENDOR_ID:
	case RT5665_VENDOR_ID_1:
	case RT5665_DEVICE_ID:
	case RT5665_LOUT:
	case RT5665_HP_CTRL_1:
	case RT5665_HP_CTRL_2:
	case RT5665_MONO_OUT:
	case RT5665_HPL_GAIN:
	case RT5665_HPR_GAIN:
	case RT5665_MONO_GAIN:
	case RT5665_CAL_BST_CTRL:
	case RT5665_CBJ_BST_CTRL:
	case RT5665_IN1_IN2:
	case RT5665_IN3_IN4:
	case RT5665_INL1_INR1_VOL:
	case RT5665_EJD_CTRL_1:
	case RT5665_EJD_CTRL_2:
	case RT5665_EJD_CTRL_3:
	case RT5665_EJD_CTRL_4:
	case RT5665_EJD_CTRL_5:
	case RT5665_EJD_CTRL_6:
	case RT5665_EJD_CTRL_7:
	case RT5665_DAC2_CTRL:
	case RT5665_DAC2_DIG_VOL:
	case RT5665_DAC1_DIG_VOL:
	case RT5665_DAC3_DIG_VOL:
	case RT5665_DAC3_CTRL:
	case RT5665_STO1_ADC_DIG_VOL:
	case RT5665_MONO_ADC_DIG_VOL:
	case RT5665_STO2_ADC_DIG_VOL:
	case RT5665_STO1_ADC_BOOST:
	case RT5665_MONO_ADC_BOOST:
	case RT5665_STO2_ADC_BOOST:
	case RT5665_HP_IMP_GAIN_1:
	case RT5665_HP_IMP_GAIN_2:
	case RT5665_STO1_ADC_MIXER:
	case RT5665_MONO_ADC_MIXER:
	case RT5665_STO2_ADC_MIXER:
	case RT5665_AD_DA_MIXER:
	case RT5665_STO1_DAC_MIXER:
	case RT5665_MONO_DAC_MIXER:
	case RT5665_STO2_DAC_MIXER:
	case RT5665_A_DAC1_MUX:
	case RT5665_A_DAC2_MUX:
	case RT5665_DIG_INF2_DATA:
	case RT5665_DIG_INF3_DATA:
	case RT5665_PDM_OUT_CTRL:
	case RT5665_PDM_DATA_CTRL_1:
	case RT5665_PDM_DATA_CTRL_2:
	case RT5665_PDM_DATA_CTRL_3:
	case RT5665_PDM_DATA_CTRL_4:
	case RT5665_REC1_GAIN:
	case RT5665_REC1_L1_MIXER:
	case RT5665_REC1_L2_MIXER:
	case RT5665_REC1_R1_MIXER:
	case RT5665_REC1_R2_MIXER:
	case RT5665_REC2_GAIN:
	case RT5665_REC2_L1_MIXER:
	case RT5665_REC2_L2_MIXER:
	case RT5665_REC2_R1_MIXER:
	case RT5665_REC2_R2_MIXER:
	case RT5665_CAL_REC:
	case RT5665_ALC_BACK_GAIN:
	case RT5665_MONOMIX_GAIN:
	case RT5665_MONOMIX_IN_GAIN:
	case RT5665_OUT_L_GAIN:
	case RT5665_OUT_L_MIXER:
	case RT5665_OUT_R_GAIN:
	case RT5665_OUT_R_MIXER:
	case RT5665_LOUT_MIXER:
	case RT5665_PWR_DIG_1:
	case RT5665_PWR_DIG_2:
	case RT5665_PWR_ANLG_1:
	case RT5665_PWR_ANLG_2:
	case RT5665_PWR_ANLG_3:
	case RT5665_PWR_MIXER:
	case RT5665_PWR_VOL:
	case RT5665_CLK_DET:
	case RT5665_HPF_CTRL1:
	case RT5665_DMIC_CTRL_1:
	case RT5665_DMIC_CTRL_2:
	case RT5665_I2S1_SDP:
	case RT5665_I2S2_SDP:
	case RT5665_I2S3_SDP:
	case RT5665_ADDA_CLK_1:
	case RT5665_ADDA_CLK_2:
	case RT5665_I2S1_F_DIV_CTRL_1:
	case RT5665_I2S1_F_DIV_CTRL_2:
	case RT5665_TDM_CTRL_1:
	case RT5665_TDM_CTRL_2:
	case RT5665_TDM_CTRL_3:
	case RT5665_TDM_CTRL_4:
	case RT5665_TDM_CTRL_5:
	case RT5665_TDM_CTRL_6:
	case RT5665_TDM_CTRL_7:
	case RT5665_TDM_CTRL_8:
	case RT5665_GLB_CLK:
	case RT5665_PLL_CTRL_1:
	case RT5665_PLL_CTRL_2:
	case RT5665_ASRC_1:
	case RT5665_ASRC_2:
	case RT5665_ASRC_3:
	case RT5665_ASRC_4:
	case RT5665_ASRC_5:
	case RT5665_ASRC_6:
	case RT5665_ASRC_7:
	case RT5665_ASRC_8:
	case RT5665_ASRC_9:
	case RT5665_ASRC_10:
	case RT5665_DEPOP_1:
	case RT5665_DEPOP_2:
	case RT5665_HP_CHARGE_PUMP_1:
	case RT5665_HP_CHARGE_PUMP_2:
	case RT5665_MICBIAS_1:
	case RT5665_MICBIAS_2:
	case RT5665_ASRC_12:
	case RT5665_ASRC_13:
	case RT5665_ASRC_14:
	case RT5665_RC_CLK_CTRL:
	case RT5665_I2S_M_CLK_CTRL_1:
	case RT5665_I2S2_F_DIV_CTRL_1:
	case RT5665_I2S2_F_DIV_CTRL_2:
	case RT5665_I2S3_F_DIV_CTRL_1:
	case RT5665_I2S3_F_DIV_CTRL_2:
	case RT5665_EQ_CTRL_1:
	case RT5665_EQ_CTRL_2:
	case RT5665_IRQ_CTRL_1:
	case RT5665_IRQ_CTRL_2:
	case RT5665_IRQ_CTRL_3:
	case RT5665_IRQ_CTRL_4:
	case RT5665_IRQ_CTRL_5:
	case RT5665_IRQ_CTRL_6:
	case RT5665_INT_ST_1:
	case RT5665_GPIO_CTRL_1:
	case RT5665_GPIO_CTRL_2:
	case RT5665_GPIO_CTRL_3:
	case RT5665_GPIO_CTRL_4:
	case RT5665_GPIO_STA:
	case RT5665_HP_AMP_DET_CTRL_1:
	case RT5665_HP_AMP_DET_CTRL_2:
	case RT5665_MID_HP_AMP_DET:
	case RT5665_LOW_HP_AMP_DET:
	case RT5665_SV_ZCD_1:
	case RT5665_SV_ZCD_2:
	case RT5665_IL_CMD_1:
	case RT5665_IL_CMD_2:
	case RT5665_IL_CMD_3:
	case RT5665_IL_CMD_4:
	case RT5665_4BTN_IL_CMD_1:
	case RT5665_4BTN_IL_CMD_2:
	case RT5665_4BTN_IL_CMD_3:
	case RT5665_PSV_IL_CMD_1:
	case RT5665_ADC_STO1_HP_CTRL_1:
	case RT5665_ADC_STO1_HP_CTRL_2:
	case RT5665_ADC_MONO_HP_CTRL_1:
	case RT5665_ADC_MONO_HP_CTRL_2:
	case RT5665_ADC_STO2_HP_CTRL_1:
	case RT5665_ADC_STO2_HP_CTRL_2:
	case RT5665_AJD1_CTRL:
	case RT5665_JD1_THD:
	case RT5665_JD2_THD:
	case RT5665_JD_CTRL_1:
	case RT5665_JD_CTRL_2:
	case RT5665_JD_CTRL_3:
	case RT5665_DIG_MISC:
	case RT5665_DUMMY_2:
	case RT5665_DUMMY_3:
	case RT5665_DAC_ADC_DIG_VOL1:
	case RT5665_DAC_ADC_DIG_VOL2:
	case RT5665_BIAS_CUR_CTRL_1:
	case RT5665_BIAS_CUR_CTRL_2:
	case RT5665_BIAS_CUR_CTRL_3:
	case RT5665_BIAS_CUR_CTRL_4:
	case RT5665_BIAS_CUR_CTRL_5:
	case RT5665_BIAS_CUR_CTRL_6:
	case RT5665_BIAS_CUR_CTRL_7:
	case RT5665_BIAS_CUR_CTRL_8:
	case RT5665_BIAS_CUR_CTRL_9:
	case RT5665_BIAS_CUR_CTRL_10:
	case RT5665_VREF_REC_OP_FB_CAP_CTRL:
	case RT5665_CHARGE_PUMP_1:
	case RT5665_DIG_IN_CTRL_1:
	case RT5665_DIG_IN_CTRL_2:
	case RT5665_PAD_DRIVING_CTRL:
	case RT5665_SOFT_RAMP_DEPOP:
	case RT5665_PLL:
	case RT5665_CHOP_DAC:
	case RT5665_CHOP_ADC:
	case RT5665_CALIB_ADC_CTRL:
	case RT5665_VOL_TEST:
	case RT5665_TEST_MODE_CTRL_1:
	case RT5665_TEST_MODE_CTRL_2:
	case RT5665_TEST_MODE_CTRL_3:
	case RT5665_TEST_MODE_CTRL_4:
	case RT5665_BASSBACK_CTRL:
	case RT5665_STO_NG2_CTRL_1:
	case RT5665_STO_NG2_CTRL_2:
	case RT5665_STO_NG2_CTRL_3:
	case RT5665_STO_NG2_CTRL_4:
	case RT5665_STO_NG2_CTRL_5:
	case RT5665_STO_NG2_CTRL_6:
	case RT5665_STO_NG2_CTRL_7:
	case RT5665_STO_NG2_CTRL_8:
	case RT5665_MONO_NG2_CTRL_1:
	case RT5665_MONO_NG2_CTRL_2:
	case RT5665_MONO_NG2_CTRL_3:
	case RT5665_MONO_NG2_CTRL_4:
	case RT5665_MONO_NG2_CTRL_5:
	case RT5665_MONO_NG2_CTRL_6:
	case RT5665_STO1_DAC_SIL_DET:
	case RT5665_MONOL_DAC_SIL_DET:
	case RT5665_MONOR_DAC_SIL_DET:
	case RT5665_STO2_DAC_SIL_DET:
	case RT5665_SIL_PSV_CTRL1:
	case RT5665_SIL_PSV_CTRL2:
	case RT5665_SIL_PSV_CTRL3:
	case RT5665_SIL_PSV_CTRL4:
	case RT5665_SIL_PSV_CTRL5:
	case RT5665_SIL_PSV_CTRL6:
	case RT5665_MONO_AMP_CALIB_CTRL_1:
	case RT5665_MONO_AMP_CALIB_CTRL_2:
	case RT5665_MONO_AMP_CALIB_CTRL_3:
	case RT5665_MONO_AMP_CALIB_CTRL_4:
	case RT5665_MONO_AMP_CALIB_CTRL_5:
	case RT5665_MONO_AMP_CALIB_CTRL_6:
	case RT5665_MONO_AMP_CALIB_CTRL_7:
	case RT5665_MONO_AMP_CALIB_STA1:
	case RT5665_MONO_AMP_CALIB_STA2:
	case RT5665_MONO_AMP_CALIB_STA3:
	case RT5665_MONO_AMP_CALIB_STA4:
	case RT5665_MONO_AMP_CALIB_STA6:
	case RT5665_HP_IMP_SENS_CTRL_01:
	case RT5665_HP_IMP_SENS_CTRL_02:
	case RT5665_HP_IMP_SENS_CTRL_03:
	case RT5665_HP_IMP_SENS_CTRL_04:
	case RT5665_HP_IMP_SENS_CTRL_05:
	case RT5665_HP_IMP_SENS_CTRL_06:
	case RT5665_HP_IMP_SENS_CTRL_07:
	case RT5665_HP_IMP_SENS_CTRL_08:
	case RT5665_HP_IMP_SENS_CTRL_09:
	case RT5665_HP_IMP_SENS_CTRL_10:
	case RT5665_HP_IMP_SENS_CTRL_11:
	case RT5665_HP_IMP_SENS_CTRL_12:
	case RT5665_HP_IMP_SENS_CTRL_13:
	case RT5665_HP_IMP_SENS_CTRL_14:
	case RT5665_HP_IMP_SENS_CTRL_15:
	case RT5665_HP_IMP_SENS_CTRL_16:
	case RT5665_HP_IMP_SENS_CTRL_17:
	case RT5665_HP_IMP_SENS_CTRL_18:
	case RT5665_HP_IMP_SENS_CTRL_19:
	case RT5665_HP_IMP_SENS_CTRL_20:
	case RT5665_HP_IMP_SENS_CTRL_21:
	case RT5665_HP_IMP_SENS_CTRL_22:
	case RT5665_HP_IMP_SENS_CTRL_23:
	case RT5665_HP_IMP_SENS_CTRL_24:
	case RT5665_HP_IMP_SENS_CTRL_25:
	case RT5665_HP_IMP_SENS_CTRL_26:
	case RT5665_HP_IMP_SENS_CTRL_27:
	case RT5665_HP_IMP_SENS_CTRL_28:
	case RT5665_HP_IMP_SENS_CTRL_29:
	case RT5665_HP_IMP_SENS_CTRL_30:
	case RT5665_HP_IMP_SENS_CTRL_31:
	case RT5665_HP_IMP_SENS_CTRL_32:
	case RT5665_HP_IMP_SENS_CTRL_33:
	case RT5665_HP_IMP_SENS_CTRL_34:
	case RT5665_HP_LOGIC_CTRL_1:
	case RT5665_HP_LOGIC_CTRL_2:
	case RT5665_HP_LOGIC_CTRL_3:
	case RT5665_HP_CALIB_CTRL_1:
	case RT5665_HP_CALIB_CTRL_2:
	case RT5665_HP_CALIB_CTRL_3:
	case RT5665_HP_CALIB_CTRL_4:
	case RT5665_HP_CALIB_CTRL_5:
	case RT5665_HP_CALIB_CTRL_6:
	case RT5665_HP_CALIB_CTRL_7:
	case RT5665_HP_CALIB_CTRL_9:
	case RT5665_HP_CALIB_CTRL_10:
	case RT5665_HP_CALIB_CTRL_11:
	case RT5665_HP_CALIB_STA_1:
	case RT5665_HP_CALIB_STA_2:
	case RT5665_HP_CALIB_STA_3:
	case RT5665_HP_CALIB_STA_4:
	case RT5665_HP_CALIB_STA_5:
	case RT5665_HP_CALIB_STA_6:
	case RT5665_HP_CALIB_STA_7:
	case RT5665_HP_CALIB_STA_8:
	case RT5665_HP_CALIB_STA_9:
	case RT5665_HP_CALIB_STA_10:
	case RT5665_HP_CALIB_STA_11:
	case RT5665_PGM_TAB_CTRL1:
	case RT5665_PGM_TAB_CTRL2:
	case RT5665_PGM_TAB_CTRL3:
	case RT5665_PGM_TAB_CTRL4:
	case RT5665_PGM_TAB_CTRL5:
	case RT5665_PGM_TAB_CTRL6:
	case RT5665_PGM_TAB_CTRL7:
	case RT5665_PGM_TAB_CTRL8:
	case RT5665_PGM_TAB_CTRL9:
	case RT5665_SAR_IL_CMD_1:
	case RT5665_SAR_IL_CMD_2:
	case RT5665_SAR_IL_CMD_3:
	case RT5665_SAR_IL_CMD_4:
	case RT5665_SAR_IL_CMD_5:
	case RT5665_SAR_IL_CMD_6:
	case RT5665_SAR_IL_CMD_7:
	case RT5665_SAR_IL_CMD_8:
	case RT5665_SAR_IL_CMD_9:
	case RT5665_SAR_IL_CMD_10:
	case RT5665_SAR_IL_CMD_11:
	case RT5665_SAR_IL_CMD_12:
	case RT5665_DRC1_CTRL_0:
	case RT5665_DRC1_CTRL_1:
	case RT5665_DRC1_CTRL_2:
	case RT5665_DRC1_CTRL_3:
	case RT5665_DRC1_CTRL_4:
	case RT5665_DRC1_CTRL_5:
	case RT5665_DRC1_CTRL_6:
	case RT5665_DRC1_HARD_LMT_CTRL_1:
	case RT5665_DRC1_HARD_LMT_CTRL_2:
	case RT5665_DRC1_PRIV_1:
	case RT5665_DRC1_PRIV_2:
	case RT5665_DRC1_PRIV_3:
	case RT5665_DRC1_PRIV_4:
	case RT5665_DRC1_PRIV_5:
	case RT5665_DRC1_PRIV_6:
	case RT5665_DRC1_PRIV_7:
	case RT5665_DRC1_PRIV_8:
	case RT5665_ALC_PGA_CTRL_1:
	case RT5665_ALC_PGA_CTRL_2:
	case RT5665_ALC_PGA_CTRL_3:
	case RT5665_ALC_PGA_CTRL_4:
	case RT5665_ALC_PGA_CTRL_5:
	case RT5665_ALC_PGA_CTRL_6:
	case RT5665_ALC_PGA_CTRL_7:
	case RT5665_ALC_PGA_CTRL_8:
	case RT5665_ALC_PGA_STA_1:
	case RT5665_ALC_PGA_STA_2:
	case RT5665_ALC_PGA_STA_3:
	case RT5665_EQ_AUTO_RCV_CTRL1:
	case RT5665_EQ_AUTO_RCV_CTRL2:
	case RT5665_EQ_AUTO_RCV_CTRL3:
	case RT5665_EQ_AUTO_RCV_CTRL4:
	case RT5665_EQ_AUTO_RCV_CTRL5:
	case RT5665_EQ_AUTO_RCV_CTRL6:
	case RT5665_EQ_AUTO_RCV_CTRL7:
	case RT5665_EQ_AUTO_RCV_CTRL8:
	case RT5665_EQ_AUTO_RCV_CTRL9:
	case RT5665_EQ_AUTO_RCV_CTRL10:
	case RT5665_EQ_AUTO_RCV_CTRL11:
	case RT5665_EQ_AUTO_RCV_CTRL12:
	case RT5665_EQ_AUTO_RCV_CTRL13:
	case RT5665_ADC_L_EQ_LPF1_A1:
	case RT5665_R_EQ_LPF1_A1:
	case RT5665_L_EQ_LPF1_H0:
	case RT5665_R_EQ_LPF1_H0:
	case RT5665_L_EQ_BPF1_A1:
	case RT5665_R_EQ_BPF1_A1:
	case RT5665_L_EQ_BPF1_A2:
	case RT5665_R_EQ_BPF1_A2:
	case RT5665_L_EQ_BPF1_H0:
	case RT5665_R_EQ_BPF1_H0:
	case RT5665_L_EQ_BPF2_A1:
	case RT5665_R_EQ_BPF2_A1:
	case RT5665_L_EQ_BPF2_A2:
	case RT5665_R_EQ_BPF2_A2:
	case RT5665_L_EQ_BPF2_H0:
	case RT5665_R_EQ_BPF2_H0:
	case RT5665_L_EQ_BPF3_A1:
	case RT5665_R_EQ_BPF3_A1:
	case RT5665_L_EQ_BPF3_A2:
	case RT5665_R_EQ_BPF3_A2:
	case RT5665_L_EQ_BPF3_H0:
	case RT5665_R_EQ_BPF3_H0:
	case RT5665_L_EQ_BPF4_A1:
	case RT5665_R_EQ_BPF4_A1:
	case RT5665_L_EQ_BPF4_A2:
	case RT5665_R_EQ_BPF4_A2:
	case RT5665_L_EQ_BPF4_H0:
	case RT5665_R_EQ_BPF4_H0:
	case RT5665_L_EQ_HPF1_A1:
	case RT5665_R_EQ_HPF1_A1:
	case RT5665_L_EQ_HPF1_H0:
	case RT5665_R_EQ_HPF1_H0:
	case RT5665_L_EQ_PRE_VOL:
	case RT5665_R_EQ_PRE_VOL:
	case RT5665_L_EQ_POST_VOL:
	case RT5665_R_EQ_POST_VOL:
	case RT5665_SCAN_MODE_CTRL:
	case RT5665_I2C_MODE:
		return true;
	default:
		return false;
	}
}

// ------------------------------------------------------------------------- //

int main(int argc, char *argv[]) {

    if (argc != 2) {
        usage();
        return 1;
    }

    int opt = atoi(argv[1]);
    switch(opt) {

    // int-bounds
    case 0:
    {
          unsigned int reg = 100;
        
          int _len_dev0 = 1;
          struct device * dev = (struct device *) malloc(_len_dev0*sizeof(struct device));
          for(int _i0 = 0; _i0 < _len_dev0; _i0++) {
              dev[_i0].dummy = ((-2 * (next_i()%2)) + 1) * next_i();
        
          }
        
          int benchRet = rt5665_readable_register(dev,reg);
          printf("%d\n", benchRet); 
          free(dev);
        
        break;
    }
    // big-arr
    case 1:
    {
          unsigned int reg = 255;
        
          int _len_dev0 = 65025;
          struct device * dev = (struct device *) malloc(_len_dev0*sizeof(struct device));
          for(int _i0 = 0; _i0 < _len_dev0; _i0++) {
              dev[_i0].dummy = ((-2 * (next_i()%2)) + 1) * next_i();
        
          }
        
          int benchRet = rt5665_readable_register(dev,reg);
          printf("%d\n", benchRet); 
          free(dev);
        
        break;
    }
    // big-arr-10x
    case 2:
    {
          unsigned int reg = 10;
        
          int _len_dev0 = 100;
          struct device * dev = (struct device *) malloc(_len_dev0*sizeof(struct device));
          for(int _i0 = 0; _i0 < _len_dev0; _i0++) {
              dev[_i0].dummy = ((-2 * (next_i()%2)) + 1) * next_i();
        
          }
        
          int benchRet = rt5665_readable_register(dev,reg);
          printf("%d\n", benchRet); 
          free(dev);
        
        break;
    }
    // empty
    case 3:
    {
          unsigned int reg = ((-2 * (next_i()%2)) + 1) * next_i();
        
          int _len_dev0 = 1;
          struct device * dev = (struct device *) malloc(_len_dev0*sizeof(struct device));
          for(int _i0 = 0; _i0 < _len_dev0; _i0++) {
              dev[_i0].dummy = ((-2 * (next_i()%2)) + 1) * next_i();
        
          }
        
          int benchRet = rt5665_readable_register(dev,reg);
          printf("%d\n", benchRet); 
          free(dev);
        
        break;
    }
    default:
        usage();
        break;

    }

    return 0;
}
